Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.06.2011, 00:27
Аспирант
Отправить личное сообщение для Reflexion Посмотреть профиль Найти все сообщения от Reflexion
 
Регистрация: 25.10.2009
Сообщений: 51

Вопрос по AJAX'y
есть небольшой ajax запрос, который впроверяет есть ли уже зареганный пользователь на сайте

var req;
var reqCount=0;
var reqResult;

function checkNick(a)
{ tmpNick=document.getElementById('nickname').value;
  req.open("POST", 'incorrecPath.php', true);
  req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  req.send('nick='+tmpNick);
}

req = new XMLHttpRequest(); 
if (req) 
{ req.onreadystatechange = function()
  { if (req.readyState == 4 && req.status == 200)
    { isNickTaken=req.responseText;
       if(isNickTaken=='1')alert('занят');
       reqCount=0;
     }
     else
     { if(req.status != 200 ) 
       { if(reqCount<5)
         {	++reqCount;
           req.open("POST", 'correctPath.php', true);
           req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
           req.send('nick='+tmpNick);
           }
           else
           { reqCount=0;
              reqVar=0;
              alert('Нет коннекта');			
            }
         }   
   }; 
}


Если с первого раза проверка не прошла, должна была отправиться 2ая, но почему-то не отправляется, или отправляется по старому адресу, при тесте заметил что если в первом запросе указать неверный адрес а в следующем верный и все должно было бы выполниться, но по каким-то причинам не выполняется.

есть статья по этому делу на сайте http://ajax-book.com/node/62 но из-за многочисленных ошибок не могу разобрать код, как там это реализовано... Если где-то есть эта реализация киньте ссылку пжл

Последний раз редактировалось Reflexion, 13.06.2011 в 02:31.
Ответить с цитированием
  #2 (permalink)  
Старый 21.06.2011, 11:08
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

isNickTaken=req.responseText;
alert(req.responseText;);
// поставьте alert() чтобы увидеть, что возвращается в ответе на запрос

// переменная isNickTaken у Вас объявлена как глобальная 
// и ее могут испортить другие запросы - поставьте var перед isNickTaken

// поставьте проверку статуса и пути
alert(req.status + ' - ' + URL);
if (req.status != 200)
{
...
}

А вообще странная логика... Зачем посылать запрос по заранее неверному адресу, чтобы получить ошибку и затем отправить запрос уже по верному адресу??
Ответить с цитированием
  #3 (permalink)  
Старый 21.06.2011, 12:57
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

Сообщение от Маэстро Посмотреть сообщение
alert(req.responseText;);
Не хорошо
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по учебнику Invis1ble Сайт Javascript.ru 12 21.03.2011 20:06
Вопрос по замыканиям Goodfella Общие вопросы Javascript 20 09.03.2011 01:21
Теоретический вопрос. gods33 (X)HTML/CSS 10 16.12.2010 23:49
Вопрос про ООП, цепочки прототипов. Shaci Общие вопросы Javascript 5 27.01.2010 14:50
вопрос по long poll megaswin AJAX и COMET 2 27.05.2008 09:20